graph TD
    subgraph Spring Boot Application
        A[业务代码] -->|调用| B[MyBatis Mapper]
        B -->|SQL操作| C[MyBatis拦截器]

        subgraph 数据加密模块
            C --> D{判断操作类型}
            D -->|INSERT/UPDATE| E[字段加密处理]
            D -->|SELECT| F[字段解密处理]
            E --> G[调用EncryptUtil.encrypt]
            F --> H[调用EncryptUtil.decrypt]
        end

        I[应用配置] -->|注入密钥| J[EncryptUtil]
        I -->|注入IV| J
    end

    subgraph 数据库
        K[MySQL] -->|存储加密数据| L[(users表)]
    end

subgraph 领域模型
    M[User实体类] --> N[使用@EncryptField注解]
    N -->|标记字段| O[mobile/email等敏感字段]
end

C -->|处理后的SQL| K
K -->|返回加密数据| C
G -->|加密结果| K
H -->|解密结果| A